package com.adu.springbootdemo.controller;

import com.adu.springbootdemo.util.JsonResult;
import com.adu.springbootdemo.util.Result;
import com.github.pagehelper.PageHelper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import java.util.List;
import com.adu.springbootdemo.domain.DbConnectInfo;

import com.adu.springbootdemo.domain.GeneratePara;
import com.adu.springbootdemo.domain.Info;
import com.adu.springbootdemo.domain.User;
import com.adu.springbootdemo.service.UserService;


@Api(description = "用户模块")
@RestController
@RequestMapping("/api")
public class UserController extends BaseController{
    @Autowired
    private UserService userService;
    // 查询
//    @ApiOperation(value="获取用户信息",notes="注意问题点")
//    @GetMapping("/find")
//    public List<User> findAll(){
//        return userService.findAll();
//    }
//    // 添加
//    @ApiOperation(value="添加用户信息",notes="注意问题点")
//    @PostMapping("/insert")
//    public void Insert(@RequestBody  User user){
//         userService.Insert(user);
//    }
//
//    // 更新
//    @ApiOperation(value="更新用户信息",notes="根据用户id")
//    @PutMapping("/update")
//    public void Update(@RequestBody User user){
//        userService.Update(user);
//    }
//
//    // 删除
//    @ApiOperation(value="删除用户信息",notes="根据用户id")
//    @DeleteMapping("/delete")
//    public void Delete(@RequestParam("id") int id){
//        userService.Delete(id);
//    }
//

    @PostMapping("/find")
    public Result findAll(){
        startPage();
        List<User> userList= userService.findAll();
        return JsonResult.OK(200,"success",userList);
    }
    @PostMapping("/coding")
    public void Generate(@RequestBody  GeneratePara generatePara){
         userService.coding(generatePara);
    }
    // 生成代码文件
    @PostMapping("/generate")
    public Result Generate(@RequestBody  DbConnectInfo dbConnectInfo){
          return JsonResult.OK(userService.Generate(dbConnectInfo));
    }
    
}